const Post = require('../models/Post');
const User = require('../models/User');

exports.searchAll = async (req, res) => {
    try {
        const { keyword } = req.query;
        if (!keyword) {
            return res.status(400).json({ message: '关键字不能为空' });
        }

        console.log('收到搜索请求，关键字:', keyword); // 添加日志

        const regex = new RegExp(keyword, 'i'); // 创建正则表达式，'i' 表示忽略大小写

        // 查询帖子
        const posts = await Post.find({
            $or: [
                { title: regex },
                { content: regex }
            ]
        }).sort({ createdAt: -1 });

        // 查询用户
        const users = await User.find({
            $or: [
                { nickname: regex }
            ]
        });

        // 合并结果
        const combinedResults = {
            posts: posts,
            users: users
        };

        res.status(200).json(combinedResults);
    } catch (error) {
        console.error('搜索失败:', error);
        res.status(500).json({ message: '搜索失败，请稍后重试' });
    }
};

exports.searchUsers = async (req, res) => {
    try {
        const { keyword } = req.query;
        if (!keyword) {
            return res.status(400).json({ message: '关键字不能为空' });
        }

        console.log('收到用户搜索请求，关键字:', keyword); // 添加日志

        const regex = new RegExp(keyword, 'i'); // 创建正则表达式，'i' 表示忽略大小写

        // 查询用户
        const users = await User.find({
            $or: [
                { nickname: regex }
            ]
        });

        res.status(200).json(users);
    } catch (error) {
        console.error('搜索用户失败:', error);
        res.status(500).json({ message: '搜索用户失败，请稍后重试' });
    }
};